/*
 * @Author: szx
 * @Date: 2021-10-31 11:28:22
 * @LastEditTime: 2021-10-31 11:46:51
 * @Description:
 * @FilePath: \leetcode\1-99\73\73.cpp
 */

#include <iostream>
#include <vector>
using namespace std;
// class Solution {
//    public:
//     void setZeroes(vector<vector<int>>& matrix) {
//         vector<vector<int>> v = matrix;
//         for (int i = 0; i < matrix.size(); i++) {
//             for (int j = 0; j < matrix[0].size(); j++) {
//                 if (matrix[i][j] == 0) {
//                     for (int m = 0; m < matrix.size(); m++) {
//                         v[m][j] = 0;
//                     }
//                     for (int n = 0; n < matrix[0].size(); n++) {
//                         v[i][n] = 0;
//                     }
//                 }
//             }
//         }
//         matrix = v;
//     }
// };

class Solution {
   public:
    void setZeroes(vector<vector<int>>& matrix) {
        int n = matrix.size();
        int m = matrix[0].size();
        vector<int> row(n, 1);
        vector<int> col(m, 1);

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (matrix[i][j] == 0) {
                    row[i] = 0;
                    col[j] = 0;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            if (row[i] == 0) {
                for (int j = 0; j < m; j++) {
                    matrix[i][j] = 0;
                }
            }
        }
        for (int i = 0; i < m; i++) {
            if (col[i] == 0) {
                for (int j = 0; j < n; j++) {
                    matrix[j][i] = 0;
                }
            }
        }
    }
};
int main() {}